﻿#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

// 引用就是一块内存空间的别名
// 引用的本质就是一个常指针。Type * ref = var; 本质是 Type * const ref = var; 所以，引用必须要初始化。

void test01() {
	int a = 10;
	int & b = a; // 定义b是a的一个引用，引用必须初始化，并且引用一旦初始化后，不能改变指向   
	b = 20;
	cout << "a=" << a << endl; // 20  

	// 引用就是指针的改良，比指针使用更方便 
	int a1 = 10;
	int * b1 = &a1;
	*b1 = 20;
	cout << "a1=" << a1 << endl; // 20 
}

// 参数的引用传递 
void func(int & a) {
	a = 200;
}

void test02() {
	int a = 100;
	func(a);
	cout << "a=" << a << endl; // 200 
}

int main()
{
	test01(); 
	test02();

	system("pause");
	return EXIT_SUCCESS;
}